coding types